#!/bin/sh
#
# $FreeBSD: $
#
# PROVIDE: navidrome
# REQUIRE: NETWORKING
# KEYWORD:
#
# Add the following lines to /etc/rc.conf to enable navidrome:
# navidrome_enable="YES"
#
# navidrome_enable (bool):              Set to YES to enable navidrome
#                                       Default: NO
# navidrome_config (str):               navidrome configuration file
#                                       Default: /usr/local/etc/navidrome/config.toml
# navidrome_datafolder (str):   navidrome Folder to store application data 
#                                       Default: www
# navidrome_user (str):         navidrome daemon user
#                                       Default: www
# navidrome_group (str):                navidrome daemon group
#                                       Default: www

. /etc/rc.subr

name="navidrome"
rcvar="navidrome_enable"
load_rc_config $name

: ${navidrome_user:="www"}
: ${navidrome_group:="www"}
: ${navidrome_enable:="NO"}
: ${navidrome_config:="/usr/local/etc/navidrome/config.toml"}
: ${navidrome_flags=""}
: ${navidrome_facility:="daemon"}
: ${navidrome_priority:="debug"}
: ${navidrome_datafolder:="/var/db/${name}"}

required_dirs=${navidrome_datafolder}
required_files=${navidrome_config}
procname="/usr/local/bin/${name}"
pidfile="/var/run/${name}.pid"
start_precmd="${name}_precmd"
command=/usr/sbin/daemon
command_args="-S -l ${navidrome_facility} -s ${navidrome_priority} -T ${name} -t ${name} -p ${pidfile} \
        ${procname} --configfile ${navidrome_config} --datafolder ${navidrome_datafolder} ${navidrome_flags}"

navidrome_precmd()
{
        install -o ${navidrome_user} /dev/null ${pidfile}
}

run_rc_command "$1"
